﻿Public Partial Class adminConfiguracion
    Inherits System.Web.UI.Page

    '****************************************************************************************
    '************ PROCEDIMIENTOS PRIVADOS PARA USO DESDE EL CONTROL DE EVENTOS **************
    '****************************************************************************************

    'Rellena las opciones del DDLOperaciones por código
    Private Sub rellenar_operaciones()
        'Dim permisos As ArrayList = Session(Comun._VARIABLE_PERMISOS)

        DDLOperaciones.Items.Clear()
        DDLOperaciones.Items.Add(New ListItem("<Seleccione una operación...>", "ninguna"))

        DDLOperaciones.DataBind()

    End Sub

    'Crea e inicializa las variables de sesión necesarias
    Private Sub inicializar_variables_sesion()
        'Recogemos la Consulta SQL Diseñada originalmente en el componente y la guardamos
        'En una variable de sesión que sirva de base para el resto de filtros
        Session("ConsultaBasicaAdminConfiguracion") = SDSHorariosTeoria.SelectCommand
        Session("FiltroAdminConfiguracion") = String.Empty
    End Sub

    'Contruye un filtro SQL a partir de los campos rellenos en la sección de búsquedas
    Private Function contruir_filtro() As String
        Dim filtro As String = String.Empty

        ''Nos quedamos con clases de Teoría sólo
        'filtro = " WHERE HORARIOS.CODIGO_TIPO_CLASE = 'TE' "

        ''Si ha elegido algún curso
        'If Not DDLCurso.SelectedValue.Equals("todos") Then
        '    If String.IsNullOrEmpty(filtro) Then
        '        filtro = " WHERE "
        '    Else
        '        filtro = filtro & " AND "
        '    End If

        '    filtro = filtro & " HORARIOS.CODIGO_GRUPO='" & DDLCurso.SelectedValue() & "'"
        'End If

        Return filtro
    End Function


    'Permite actualizar el horario que se esté mostrando en pantalla
    'en el momento actual en función de las opciones seleccionadas
    'en los DDL's de la sección de Búsquedas
    Private Sub ConfigurarBusqueda()
        Dim filtro As String = String.Empty

        filtro = contruir_filtro()
        Session("FiltroAdminConfiguracion") = filtro


        'AQUÍ HABRÍA QUE CODIFICAR LO NECESARIO PARA RECARGAR LISTADO DE USUARIOS
        'SEGÚN EL FILTRO DE BÚSQUEDA APLICADO

        Try

        Catch ex As Exception
            TBErrorDetalles.Text = filtro & " --> " & ex.ToString()
            HFError_ModalPopupExtender.Show()
        End Try
    End Sub

    'Permite actualizar la consulta select del DataSource asociado a GVListadoAlumnos
    'para ser invocado cada vez que, por algún evento haya que actualizarla
    Private Sub RecargarListado()
        'si en ese momento se está trabajando con búsquedas avanzadas
        'se recarga tras un evento
        ConfigurarBusqueda()

    End Sub




    '****************************************************************************************




    '****************************************************************************************
    '************ PROCEDIMIENTOS DE CONTROL DE EVENTOS **************************************
    '****************************************************************************************

    Private Sub gestionHorariosTeoria_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        'Ocultamos los paneles de aviso y errores
        'para que no se vean en las recargas de la página
        PnlError.Style.Add("display", "none")
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Dim permisos As ArrayList = Session(Comun._VARIABLE_PERMISOS)

        'Comun.establecer_cierre_automatico(Session, Request, Response)

        Try
            'If permisos.Contains("ROL_ADMINISTRADOR") Then
            'Debido a que cuando un contro GridView ordena, cambia de página o cualquier otro evento
            'tras la recarga de la página se pierde cualquier filtro aplicado previamente,
            'en el evento de carga de la página hay que volver a aplicar los filtros almacenados
            'y volver a vincular los datos

            'Si es la primera vez que se carga la página
            If Not (Page.IsPostBack) Then
                'si es la primera vez que se carga la página
                inicializar_variables_sesion()

                rellenar_operaciones()

                RecargarListado()
            End If

            'Else
            '    Comun.salir(Session, Request, Response)
            'End If

            'If Not permisos.Contains("ROL_MODIFICAR_HORARIOS_TEORIA") Then
            '    LBHorariosTeoria.Enabled = False
            'End If

        Catch ex As Exception
            Comun.salir(Session, Request, Response)
        End Try

    End Sub

    Protected Sub LBSalir_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LBSalir.Click
        Comun.salir(Session, Request, Response)
    End Sub

    Protected Sub LBErrorDetalles_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LBErrorDetalles.Click
        'Si los detalles están visibles
        If TBErrorDetalles.Visible = True Then
            TBErrorDetalles.Visible = False
            LBErrorDetalles.Text = "Mostar detalles"
        Else 'si están ocultos
            TBErrorDetalles.Visible = True
            LBErrorDetalles.Text = "Ocultar detalles"
        End If
    End Sub

End Class